package dao;

import dao.domain.Book;

import java.sql.SQLException;
import java.util.List;

/**
 * @author huangzhiyang
 * @Date 2023/11/7
 * @Description
 */
public interface BookDao {
    /**
     * 在数据库中搜索书对象数据
     *
     * @param number 书号
     * @return 书对象
     * @throws SQLException 数据库异常
     */
    Book selectById(int number) throws SQLException;

    /**
     * 储存至数据库
     *
     * @param book 被储存的对象
     * @throws SQLException 数据库异常
     */
    void save(Book book) throws SQLException;

    /**
     * 更新数据库
     *
     * @param book 被更新对象
     * @throws SQLException 数据库异常
     */
    void update(Book book) throws SQLException;

    /**
     * 搜索数据库中符合条件的数据
     *
     * @param book 打包的数据
     * @return 所有符合的数据
     * @throws SQLException 数据库异常
     */
    List<Book> searchBooks(Book book) throws SQLException;

    /**
     * 删除数据库记录
     *
     * @param book 被删除对象
     * @return 是否成功
     * @throws SQLException 数据库异常
     */
    boolean delete(Book book) throws SQLException;
}
